`
https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array/
`

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var findDisappearedNumbers = function (nums) {
  // 由于 nums 的数都位于 [1, n]，所以可以把 nums 本身作为哈希表记录元素是否出现
  // 由于 nums 中的元素都是正数，所以我们可以用负数来标记某个元素已经出现过
  for (const num of nums) {
    const idx = Math.abs(num) - 1
    if (nums[idx] > 0) {
      nums[idx] *= -1
    }
  }

  const res = []

  // 最后找出所有还是正数的索引，索引值+1就是没有出现过的数字
  for (let i = 0; i < nums.length; i++) {
    if (nums[i] > 0) {
      res.push(i + 1)
    }
  }

  return res
};